/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * GameFrame.java
 *
 * Created on Jun 20, 2009, 8:52:43 PM
 */

package ces31.ChineseDicesClient.IU;

import ces31.ChineseDicesClient.RN.RN_Jogo;
import ces31.ChineseDicesCommon.ClienteInterface;
import java.rmi.RemoteException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Douglas
 */
public class IU_Jogo extends javax.swing.JFrame implements IU_Jogo_Observer{

    /** Creates new form GameFrame */
    public IU_Jogo() {
        super();
    }

    private void montarTabuleiro(){
        initComponents();
        botaoDuvidar.setEnabled(false);
        botaoEnviar.setEnabled(false);
        setNomeDosJogadores(getJogo().getNomeOponente(),getJogo().getNomeJogador());
        getJogo().attach(this);
        this.setVisible(true);
    }

//    public void atualizarAreaDeTexto(){
//     //   areaHistoricoJogadas.append(jogo.getNovaMensagem()+ "\n");
//
//    }
    public void apresentarAfirmacao(){
        areaUltimaAfirmacao.setText(jogo.getNovaMensagem());
        areaHistoricoJogadas.append(jogo.getNovaMensagem()+ "\n");
    }

    public void habilitarJogada() {
            if(jogo.getEhPrimeiraAfirmacao()){
                botaoDuvidar.setEnabled(false);
                botaoEnviar.setEnabled(true);
            }
            else{
                botaoDuvidar.setEnabled(true);
                if(Integer.parseInt(jogo.getQuantidadeMinimaDeDados())>=10){
                    botaoEnviar.setEnabled(false);
                }
                else{
                    comboBoxQuantidade.setSelectedIndex(Integer.parseInt(jogo.getQuantidadeMinimaDeDados())-1);
                    comboBoxQuantidade.updateUI();
                    botaoEnviar.setEnabled(true);
                }
            }
        
    }

    public void encerrarJogo(){
        IU_ResultadoFinal congratulateframe = new IU_ResultadoFinal(jogo.getNomeVencedor());
        this.setVisible(false);
        congratulateframe.setVisible(true);

    }
    public void atualizarInformacoesJogador(){
        if(jogo.getNovaMensagem()== null){
            areaHistoricoJogadas.append("Iniciando um novo Jogo!\n\n");
        }
        else{
            areaHistoricoJogadas.append(jogo.getNovaMensagem()+ "\n");
        }
        imagemDadoAdversario1.setVisible(true);
        imagemDadoAdversario2.setVisible(false);
        imagemDadoAdversario3.setVisible(false);
        imagemDadoAdversario4.setVisible(false);
        imagemDadoAdversario5.setVisible(false);

        if(jogo.getQuantidadeDeDadosDoOponente()>1){
            imagemDadoAdversario2.setVisible(true);
            if(jogo.getQuantidadeDeDadosDoOponente()>2){
                imagemDadoAdversario3.setVisible(true);
                if(jogo.getQuantidadeDeDadosDoOponente()>3){
                    imagemDadoAdversario4.setVisible(true);
                    if(jogo.getQuantidadeDeDadosDoOponente()>4){
                        imagemDadoAdversario5.setVisible(true);
                    }
                }
            }
        }
        List<Integer> helplist = jogo.getValoresDosMeusDados();
        imagemDadoJogador1.setVisible(false);
        imagemDadoJogador2.setVisible(false);
        imagemDadoJogador3.setVisible(false);
        imagemDadoJogador4.setVisible(false);
        imagemDadoJogador5.setVisible(false);
        
        if(helplist.size()>=1){
            imagemDadoJogador1.setIcon(new javax.swing.ImageIcon(getClass().getResource(
                    "/ces31/ChineseDicesClient/IU/dices"+helplist.get(0).toString()+".png")));
            imagemDadoJogador1.setVisible(true);
        }
        if(helplist.size()>=2){
            imagemDadoJogador2.setIcon(new javax.swing.ImageIcon(getClass().getResource(
                    "/ces31/ChineseDicesClient/IU/dices"+helplist.get(1).toString()+".png")));
            imagemDadoJogador2.setVisible(true);
        }
        if(helplist.size()>=3){
            imagemDadoJogador3.setIcon(new javax.swing.ImageIcon(getClass().getResource(
                    "/ces31/ChineseDicesClient/IU/dices"+helplist.get(2).toString()+".png")));
            imagemDadoJogador3.setVisible(true);
        }
        if(helplist.size()>=4){
            imagemDadoJogador4.setIcon(new javax.swing.ImageIcon(getClass().getResource(
                    "/ces31/ChineseDicesClient/IU/dices"+helplist.get(3).toString()+".png")));
            imagemDadoJogador4.setVisible(true);
        }
        if(helplist.size()>=5){
            imagemDadoJogador5.setIcon(new javax.swing.ImageIcon(getClass().getResource(
                    "/ces31/ChineseDicesClient/IU/dices"+helplist.get(4).toString()+".png")));
            imagemDadoJogador5.setVisible(true);
        
        }
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel6 = new javax.swing.JPanel();
        textoHistoricoJogadas = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        areaHistoricoJogadas = new javax.swing.JTextArea();
        jSeparator7 = new javax.swing.JSeparator();
        textoNomeAdversario = new javax.swing.JLabel();
        imagemDadoAdversario1 = new javax.swing.JLabel();
        imagemDadoAdversario2 = new javax.swing.JLabel();
        imagemDadoAdversario3 = new javax.swing.JLabel();
        imagemDadoAdversario4 = new javax.swing.JLabel();
        imagemDadoJogador1 = new javax.swing.JLabel();
        imagemDadoJogador2 = new javax.swing.JLabel();
        imagemDadoJogador3 = new javax.swing.JLabel();
        imagemDadoJogador4 = new javax.swing.JLabel();
        imagemDadoAdversario5 = new javax.swing.JLabel();
        textoNomeJogador = new javax.swing.JLabel();
        imagemDadoJogador5 = new javax.swing.JLabel();
        textoAfirmacaoAdversario = new javax.swing.JLabel();
        areaUltimaAfirmacao = new javax.swing.JLabel();
        botaoDuvidar = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JSeparator();
        textoAfirmacao = new javax.swing.JLabel();
        textoAfirmacao1 = new javax.swing.JLabel();
        comboBoxQuantidade = new javax.swing.JComboBox();
        textoAfirmacao2 = new javax.swing.JLabel();
        comboBoxValores = new javax.swing.JComboBox();
        botaoEnviar = new javax.swing.JButton();
        jSeparator8 = new javax.swing.JSeparator();
        jMenuBar1 = new javax.swing.JMenuBar();
        menuJogo = new javax.swing.JMenu();
        botaoDesistir = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);

        jPanel6.setName("jPanel6"); // NOI18N

        textoHistoricoJogadas.setText("Histórico de jogadas");
        textoHistoricoJogadas.setName("textoHistoricoJogadas"); // NOI18N

        jScrollPane2.setAutoscrolls(true);
        jScrollPane2.setName("jScrollPane2"); // NOI18N

        areaHistoricoJogadas.setColumns(20);
        areaHistoricoJogadas.setEditable(false);
        areaHistoricoJogadas.setRows(5);
        areaHistoricoJogadas.setDragEnabled(true);
        areaHistoricoJogadas.setName("areaHistoricoJogadas"); // NOI18N
        jScrollPane2.setViewportView(areaHistoricoJogadas);

        jSeparator7.setName("jSeparator7"); // NOI18N

        textoNomeAdversario.setText("Douglas");
        textoNomeAdversario.setName("textoNomeAdversario"); // NOI18N

        imagemDadoAdversario1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/covered_dice.png"))); // NOI18N
        imagemDadoAdversario1.setName("imagemDadoAdversario1"); // NOI18N

        imagemDadoAdversario2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/covered_dice.png"))); // NOI18N
        imagemDadoAdversario2.setName("imagemDadoAdversario2"); // NOI18N

        imagemDadoAdversario3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/covered_dice.png"))); // NOI18N
        imagemDadoAdversario3.setName("imagemDadoAdversario3"); // NOI18N

        imagemDadoAdversario4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/covered_dice.png"))); // NOI18N
        imagemDadoAdversario4.setName("imagemDadoAdversario4"); // NOI18N

        imagemDadoJogador1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/dices3.png"))); // NOI18N
        imagemDadoJogador1.setName("imagemDadoJogador1"); // NOI18N

        imagemDadoJogador2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/dices4.png"))); // NOI18N
        imagemDadoJogador2.setName("imagemDadoJogador2"); // NOI18N

        imagemDadoJogador3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/dices2.png"))); // NOI18N
        imagemDadoJogador3.setName("imagemDadoJogador3"); // NOI18N

        imagemDadoJogador4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/dices6.png"))); // NOI18N
        imagemDadoJogador4.setName("imagemDadoJogador4"); // NOI18N

        imagemDadoAdversario5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/covered_dice.png"))); // NOI18N
        imagemDadoAdversario5.setName("imagemDadoAdversario5"); // NOI18N

        textoNomeJogador.setText("Rafaru");
        textoNomeJogador.setName("textoNomeJogador"); // NOI18N

        imagemDadoJogador5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ces31/ChineseDicesClient/IU/dices6.png"))); // NOI18N
        imagemDadoJogador5.setName("imagemDadoJogador5"); // NOI18N

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(imagemDadoAdversario1)
                                .addGap(18, 18, 18)
                                .addComponent(imagemDadoAdversario2)
                                .addGap(18, 18, 18)
                                .addComponent(imagemDadoAdversario3))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addGap(35, 35, 35)
                                .addComponent(imagemDadoAdversario4)
                                .addGap(18, 18, 18)
                                .addComponent(imagemDadoAdversario5))
                            .addComponent(textoNomeAdversario)))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGap(16, 16, 16)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(imagemDadoJogador1)
                                .addGap(10, 10, 10)
                                .addComponent(imagemDadoJogador2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(imagemDadoJogador3))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addGap(34, 34, 34)
                                .addComponent(imagemDadoJogador4)
                                .addGap(18, 18, 18)
                                .addComponent(imagemDadoJogador5))
                            .addComponent(textoNomeJogador))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE)
                    .addComponent(textoHistoricoJogadas))
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textoNomeAdversario)
                    .addComponent(textoHistoricoJogadas))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(imagemDadoAdversario3)
                            .addComponent(imagemDadoAdversario2)
                            .addComponent(imagemDadoAdversario1))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(imagemDadoAdversario4)
                            .addComponent(imagemDadoAdversario5))
                        .addGap(29, 29, 29)
                        .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(textoNomeJogador)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(imagemDadoJogador1)
                            .addComponent(imagemDadoJogador2)
                            .addComponent(imagemDadoJogador3))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(imagemDadoJogador5)
                            .addComponent(imagemDadoJogador4)))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 333, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26))
        );

        textoAfirmacaoAdversario.setText("Afirmação do Adversário");
        textoAfirmacaoAdversario.setName("textoAfirmacaoAdversario"); // NOI18N

        areaUltimaAfirmacao.setText(jogo.getNovaMensagem());
        areaUltimaAfirmacao.setAutoscrolls(true);
        areaUltimaAfirmacao.setName("areaUltimaAfirmacao"); // NOI18N

        botaoDuvidar.setText("Duvidar");
        botaoDuvidar.setName("botaoDuvidar"); // NOI18N
        botaoDuvidar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                duvidar(evt);
            }
        });

        jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
        jSeparator1.setName("jSeparator1"); // NOI18N

        textoAfirmacao.setText("Sua afirmação:");
        textoAfirmacao.setName("textoAfirmacao"); // NOI18N

        textoAfirmacao1.setText("Existem");
        textoAfirmacao1.setName("textoAfirmacao1"); // NOI18N

        comboBoxQuantidade.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }));
        comboBoxQuantidade.setName("comboBoxQuantidade"); // NOI18N
        comboBoxQuantidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                getQuantidadeDeDados(evt);
            }
        });

        textoAfirmacao2.setText("dados de valor");
        textoAfirmacao2.setName("textoAfirmacao2"); // NOI18N

        comboBoxValores.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2", "3", "4", "5", "6" }));
        comboBoxValores.setName("comboBoxValores"); // NOI18N
        comboBoxValores.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                getValoresDosDados(evt);
            }
        });

        botaoEnviar.setText("Enviar");
        botaoEnviar.setName("botaoEnviar"); // NOI18N
        botaoEnviar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enviarAfirmacao(evt);
            }
        });

        jSeparator8.setName("jSeparator8"); // NOI18N

        jMenuBar1.setName("jMenuBar1"); // NOI18N

        menuJogo.setText("Jogo");
        menuJogo.setName("menuJogo"); // NOI18N

        botaoDesistir.setText("Desistir");
        botaoDesistir.setName("botaoDesistir"); // NOI18N
        botaoDesistir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                desistir(evt);
            }
        });
        menuJogo.add(botaoDesistir);

        jMenuBar1.add(menuJogo);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botaoDuvidar)
                                .addGap(42, 42, 42))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(textoAfirmacaoAdversario)
                                .addGap(92, 92, 92))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                .addComponent(areaUltimaAfirmacao, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(2, 2, 2)))
                        .addGap(25, 25, 25)
                        .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(10, 10, 10)
                                .addComponent(jSeparator8, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(305, 305, 305)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addComponent(botaoEnviar)
                                        .addGroup(layout.createSequentialGroup()
                                            .addComponent(textoAfirmacao1)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(comboBoxQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                            .addComponent(textoAfirmacao2)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(comboBoxValores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addComponent(textoAfirmacao)))
                            .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator8, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(7, 7, 7)
                        .addComponent(textoAfirmacaoAdversario)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(areaUltimaAfirmacao)
                        .addGap(18, 18, 18)
                        .addComponent(botaoDuvidar))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(textoAfirmacao)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(textoAfirmacao1)
                            .addComponent(comboBoxQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(textoAfirmacao2)
                            .addComponent(comboBoxValores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(botaoEnviar))
                    .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents
/**
 * Caso de Uso: Desistir do Jogo
 * @param evt
 */
    private void desistir(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_desistir
        try {
            jogo.encerrarJogo();
        } catch (RemoteException ex) {
            Logger.getLogger(IU_Jogo.class.getName()).log(Level.SEVERE, null, ex);
        }
}//GEN-LAST:event_desistir
/**
 * Caso de Uso: Enviar Afirmacao
 * @param evt
 */
    private void enviarAfirmacao(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_enviarAfirmacao
        desabilitarJogada();
        try {
            jogo.encaminharAfirmacao(Integer.parseInt(quantidadeDeDados), Integer.parseInt(valoresDosDados));
        } catch (RemoteException ex) {
            Logger.getLogger(IU_Jogo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_enviarAfirmacao

    private void desabilitarJogada(){
        botaoEnviar.setEnabled(false);
        botaoDuvidar.setEnabled(false);
    }


    private void getQuantidadeDeDados(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_getQuantidadeDeDados
        javax.swing.JComboBox cb = (javax.swing.JComboBox)evt.getSource();
        quantidadeDeDados = (String)cb.getSelectedItem();
        if(Integer.parseInt(quantidadeDeDados)>=Integer.parseInt(jogo.getQuantidadeMinimaDeDados())){
            if(jogo.getEhMeuTurno())botaoEnviar.setEnabled(true);
        }
        else botaoEnviar.setEnabled(false);
    }//GEN-LAST:event_getQuantidadeDeDados

    private void getValoresDosDados(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_getValoresDosDados
        javax.swing.JComboBox cb = (javax.swing.JComboBox)evt.getSource();
        valoresDosDados = (String)cb.getSelectedItem();

    }//GEN-LAST:event_getValoresDosDados
/**
 * Caso de Uso: Duvidar
 * @param evt
 */
    private void duvidar(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_duvidar
        try {
            desabilitarJogada();
            jogo.encaminharDuvida();
        } catch (RemoteException ex) {
            Logger.getLogger(IU_Jogo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_duvidar

    private void setNomeDosJogadores(String jogador1, String jogador2){
        textoNomeAdversario.setText(jogador1);
        textoNomeJogador.setText(jogador2);
    }
  
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextArea areaHistoricoJogadas;
    private javax.swing.JLabel areaUltimaAfirmacao;
    private javax.swing.JMenuItem botaoDesistir;
    private javax.swing.JButton botaoDuvidar;
    private javax.swing.JButton botaoEnviar;
    private javax.swing.JComboBox comboBoxQuantidade;
    private javax.swing.JComboBox comboBoxValores;
    private javax.swing.JLabel imagemDadoAdversario1;
    private javax.swing.JLabel imagemDadoAdversario2;
    private javax.swing.JLabel imagemDadoAdversario3;
    private javax.swing.JLabel imagemDadoAdversario4;
    private javax.swing.JLabel imagemDadoAdversario5;
    private javax.swing.JLabel imagemDadoJogador1;
    private javax.swing.JLabel imagemDadoJogador2;
    private javax.swing.JLabel imagemDadoJogador3;
    private javax.swing.JLabel imagemDadoJogador4;
    private javax.swing.JLabel imagemDadoJogador5;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator7;
    private javax.swing.JSeparator jSeparator8;
    private javax.swing.JMenu menuJogo;
    private javax.swing.JLabel textoAfirmacao;
    private javax.swing.JLabel textoAfirmacao1;
    private javax.swing.JLabel textoAfirmacao2;
    private javax.swing.JLabel textoAfirmacaoAdversario;
    private javax.swing.JLabel textoHistoricoJogadas;
    private javax.swing.JLabel textoNomeAdversario;
    private javax.swing.JLabel textoNomeJogador;
    // End of variables declaration//GEN-END:variables
    private RN_Jogo jogo;

    public RN_Jogo getJogo() {
        return jogo;
    }

    public void setJogo(RN_Jogo jogo) {
        this.jogo = jogo;
    }

    public RN_Jogo iniciarJogo(ClienteInterface clienteInterface, String nomeJogador, String nomeAdversario){
        setJogo(new RN_Jogo(clienteInterface, nomeJogador, nomeAdversario));
        montarTabuleiro();
        return getJogo();
    }
    private String quantidadeDeDados = "1";
    private String valoresDosDados = "2";
    

}
